public class demo01 {
    public static void main(String[] args) {
        int[][] arr={{111,112,113,111,112,113},
                     {114,115,116,111,112,113},
                     {114,115,116,111,112,113},
                     {114,115,116,111,112,113},
                     {114,115,116,111,112,113},
                     {114,115,116,111,112,113}};
        int num=getMost(arr);
        System.out.println(num);
    }
//    public static int getMost(int[][] board) {
//        int[][] arr=new int[7][7];
//        for (int i = 1; i <= 6; i++) {
//            for (int j = 1; j <= 6; j++) {
//                if(arr[i-1][j]>arr[i][j-1]){
//                    arr[i][j]=board[i-1][j-1]+arr[i-1][j];
//                }else{
//                    arr[i][j]=board[i-1][j-1]+arr[i][j-1];
//                }
//            }
//        }
//        return arr[6][6];
//    }

    //年终奖
    public static int getMost(int[][] board) {
        int row=board.length;
        int col=board[0].length;
        for (int i = 1; i < col; i++) {
            board[0][i]+=board[0][i-1];
        }
        for (int i = 1; i < row; i++) {
            board[i][0]+=board[i-1][0];
        }
        for (int i = 1; i < row; i++) {
            for (int j = 1; j < col; j++) {
                board[i][j]+=Math.max(board[i-1][j],board[i][j-1]);
            }
        }
        return board[row-1][col-1];
    }

}


//class Bonus {
//    public int max=0;
//    public int n=0;
//    public int[] di={1,0};
//    public int[] dj={0,1};
//    public int[][] num=new int[6][6];
//    public int getMost(int[][] board) {
//        num[0][0]=1;
//        dfs(board,0,0,num);
//        return max;
//    }
//    public void dfs(int[][] arr,int i,int j,int[][] num){
//        if(i==arr.length-1&&j==arr.length-1){
//            if(n>max){
//                max=n;
//            }
//        }
//        for (int k = 0; k < 2; k++) {
//            int i1=i+di[k];
//            int j1=j+dj[k];
//            if(i1>=0&&i1<arr.length&&j1>=0&&j1<arr[i1].length){
//                if(arr[i1][j1]>100&&arr[i1][j1]<1000&&num[i1][j1]==0){
//                    num[i1][j1]=1;
//                    n+=arr[i1][j1];
//                    dfs(arr,i1,j1,num);
//                    n-=arr[i1][j1];
//                    num[i1][j1]=0;
//                }
//            }
//        }
//    }
//}